/*
 * Copyright 2010 bedatadriven
 *
 *    Licensed under the Apache License, Version 2.0 (the "License");
 *    you may not use this file except in compliance with the License.
 *    You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 *    Unless required by applicable law or agreed to in writing, software
 *    distributed under the License is distributed on an "AS IS" BASIS,
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *    See the License for the specific language governing permissions and
 *    limitations under the License.
 */

/**
 * JacobGen generated file --- do not edit
 *
 * (http://www.bigatti.it/projects/jacobgen)
 */
package com.bedatadriven.mso.powerpoint;

import com.bedatadriven.mso.core.MsoChartElementType;
import com.bedatadriven.mso.excel.XlChartType;
import com.bedatadriven.mso.excel.XlRowCol;
import com.google.gwt.core.client.JavaScriptObject;

/** Wrapper for PowerPoint.Chart*/
public class Chart extends JavaScriptObject {

	protected Chart() { }

	public native final void applyDataLabels(int type,  Object legendKey,  Object autoText,  Object hasLeaderLines,  Object showSeriesName,  Object showCategoryName,  Object showValue,  Object showPercentage,  Object showBubbleSize,  Object separator)/*-{
		this.ApplyDataLabels( type, legendKey, autoText, hasLeaderLines, showSeriesName, showCategoryName, showValue, showPercentage, showBubbleSize, separator);
	}-*/;

	protected native final int _getChartType()/*-{
		return this.ChartType;
	}-*/;

	public final XlChartType getChartType(){
		return XlChartType.valueOf(_getChartType());
	}
	protected native final void _setChartType( int value)/*-{
		this.ChartType = value;
	}-*/;

	public final void setChartType(XlChartType value){
		_setChartType(value.getValue());
	}
	public native final boolean getHasDataTable()/*-{
		return this.HasDataTable;
	}-*/;

	public native final void setHasDataTable(boolean value)/*-{
		this.HasDataTable = value;
	}-*/;

	protected native final void _applyCustomType( int chartType,  Object typeName)/*-{
		this.ApplyCustomType( chartType, typeName);
	}-*/;

	public final void applyCustomType(XlChartType chartType,  Object typeName){
		_applyCustomType(chartType.getValue(), typeName);
	}
	public native final void getChartElement(int x, int y, int elementID, int arg1, int arg2)/*-{
		this.GetChartElement( x, y, elementID, arg1, arg2);
	}-*/;

  public final void setSourceData(String source, XlRowCol plotBy) {
    _setSourceData(source, plotBy.getValue());
  }

  public final void setSourceData(String source) {
    _setSourceData(source, 0);
  }

	private native final void _setSourceData(String source,  int plotBy)/*-{
		this.SetSourceData( source, plotBy);
	}-*/;

	public native final int getPlotBy()/*-{
		return this.PlotBy;
	}-*/;

	public native final void setPlotBy(int value)/*-{
		this.PlotBy = value;
	}-*/;

	public native final void autoFormat(int gallery,  Object format)/*-{
		this.AutoFormat( gallery, format);
	}-*/;

	public native final void setBackgroundPicture(String fileName)/*-{
		this.SetBackgroundPicture( fileName);
	}-*/;

	public native final DataTable getDataTable()/*-{
		return this.DataTable;
	}-*/;

	public native final void paste( Object type)/*-{
		this.Paste( type);
	}-*/;

	public native final int getBarShape()/*-{
		return this.BarShape;
	}-*/;

	public native final void setBarShape(int value)/*-{
		this.BarShape = value;
	}-*/;

	public native final void setDefaultChart( Object name)/*-{
		this.SetDefaultChart( name);
	}-*/;

	public native final void applyChartTemplate(String fileName)/*-{
		this.ApplyChartTemplate( fileName);
	}-*/;

	public native final void saveChartTemplate(String fileName)/*-{
		this.SaveChartTemplate( fileName);
	}-*/;

	public native final Walls getSideWall()/*-{
		return this.SideWall;
	}-*/;

	public native final Walls getBackWall()/*-{
		return this.BackWall;
	}-*/;

	public native final JavaScriptObject getChartStyle()/*-{
		return this.ChartStyle;
	}-*/;

	public native final void setChartStyle( Object value)/*-{
		this.ChartStyle = value;
	}-*/;

	public native final void clearToMatchStyle()/*-{
		this.ClearToMatchStyle( );
	}-*/;

	public native final boolean getHasPivotFields()/*-{
		return this.HasPivotFields;
	}-*/;

	public native final void setHasPivotFields(boolean value)/*-{
		this.HasPivotFields = value;
	}-*/;

	public native final void setShowDataLabelsOverMaximum(boolean value)/*-{
		this.ShowDataLabelsOverMaximum = value;
	}-*/;

	public native final boolean getShowDataLabelsOverMaximum()/*-{
		return this.ShowDataLabelsOverMaximum;
	}-*/;

	public native final void applyLayout(int layout,  Object chartType)/*-{
		this.ApplyLayout( layout, chartType);
	}-*/;

	public native final void refresh()/*-{
		this.Refresh( );
	}-*/;

	public native final ChartData getChartData()/*-{
		return this.ChartData;
	}-*/;

	public native final Shapes getShapes()/*-{
		return this.Shapes;
	}-*/;

	public native final int getCreator()/*-{
		return this.Creator;
	}-*/;

	public native final ChartGroup getArea3DGroup()/*-{
		return this.Area3DGroup;
	}-*/;

	public native final Object areaGroups( Object index)/*-{
		return this.AreaGroups( index);
	}-*/;

	public native final ChartGroup getBar3DGroup()/*-{
		return this.Bar3DGroup;
	}-*/;

	public native final Object barGroups( Object index)/*-{
		return this.BarGroups( index);
	}-*/;

	public native final ChartGroup getColumn3DGroup()/*-{
		return this.Column3DGroup;
	}-*/;

	public native final Object columnGroups( Object index)/*-{
		return this.ColumnGroups( index);
	}-*/;

	public native final ChartGroup getLine3DGroup()/*-{
		return this.Line3DGroup;
	}-*/;

	public native final Object lineGroups( Object index)/*-{
		return this.LineGroups( index);
	}-*/;

	public native final ChartGroup getPie3DGroup()/*-{
		return this.Pie3DGroup;
	}-*/;

	public native final Object pieGroups( Object index)/*-{
		return this.PieGroups( index);
	}-*/;

	public native final Object doughnutGroups( Object index)/*-{
		return this.DoughnutGroups( index);
	}-*/;

	public native final Object radarGroups( Object index)/*-{
		return this.RadarGroups( index);
	}-*/;

	public native final ChartGroup getSurfaceGroup()/*-{
		return this.SurfaceGroup;
	}-*/;

	public native final Object xYGroups( Object index)/*-{
		return this.XYGroups( index);
	}-*/;

	public native final PpApplication getApplication()/*-{
		return this.Application;
	}-*/;

	public native final void _ApplyDataLabels(int type,  Object legendKey,  Object autoText,  Object hasLeaderLines)/*-{
		this._ApplyDataLabels( type, legendKey, autoText, hasLeaderLines);
	}-*/;

	public native final void setAutoScaling(boolean value)/*-{
		this.AutoScaling = value;
	}-*/;

	public native final boolean getAutoScaling()/*-{
		return this.AutoScaling;
	}-*/;

	public native final Object axes( Object type, int axisGroup)/*-{
		return this.Axes( type, axisGroup);
	}-*/;

	public native final ChartArea getChartArea()/*-{
		return this.ChartArea;
	}-*/;

	public native final Object chartGroups( Object index)/*-{
		return this.ChartGroups( index);
	}-*/;

	public native final ChartTitle getChartTitle()/*-{
		return this.ChartTitle;
	}-*/;

	public native final void chartWizard( Object source,  Object gallery,  Object format,  Object plotBy,  Object categoryLabels,  Object seriesLabels,  Object hasLegend,  Object title,  Object categoryTitle,  Object valueTitle,  Object extraTitle)/*-{
		this.ChartWizard( source, gallery, format, plotBy, categoryLabels, seriesLabels, hasLegend, title, categoryTitle, valueTitle, extraTitle);
	}-*/;

	public native final void copy( Object before,  Object after)/*-{
		this.Copy( before, after);
	}-*/;

	public native final void copyPicture(int appearance, int format, int size)/*-{
		this.CopyPicture( appearance, format, size);
	}-*/;

	public native final Corners getCorners()/*-{
		return this.Corners;
	}-*/;

	public native final void delete()/*-{
		this.Delete( );
	}-*/;

	public native final int getDepthPercent()/*-{
		return this.DepthPercent;
	}-*/;

	public native final void setDepthPercent(int value)/*-{
		this.DepthPercent = value;
	}-*/;

	public native final int getDisplayBlanksAs()/*-{
		return this.DisplayBlanksAs;
	}-*/;

	public native final void setDisplayBlanksAs(int value)/*-{
		this.DisplayBlanksAs = value;
	}-*/;

	public native final int getElevation()/*-{
		return this.Elevation;
	}-*/;

	public native final void setElevation(int value)/*-{
		this.Elevation = value;
	}-*/;

	public native final boolean export(String fileName,  Object filterName,  Object interactive)/*-{
		return this.Export( fileName, filterName, interactive);
	}-*/;

	public native final Floor getFloor()/*-{
		return this.Floor;
	}-*/;

	public native final int getGapDepth()/*-{
		return this.GapDepth;
	}-*/;

	public native final void setGapDepth(int value)/*-{
		this.GapDepth = value;
	}-*/;

	public native final JavaScriptObject getHasAxis( Object index1,  Object index2)/*-{
		return this.HasAxis( index1, index2);
	}-*/;

	public native final boolean getHasLegend()/*-{
		return this.HasLegend;
	}-*/;

	public native final void setHasLegend(boolean value)/*-{
		this.HasLegend = value;
	}-*/;

	public native final boolean getHasTitle()/*-{
		return this.HasTitle;
	}-*/;

	public native final void setHasTitle(boolean value)/*-{
		this.HasTitle = value;
	}-*/;

	public native final int getHeightPercent()/*-{
		return this.HeightPercent;
	}-*/;

	public native final void setHeightPercent(int value)/*-{
		this.HeightPercent = value;
	}-*/;

	public native final Legend getLegend()/*-{
		return this.Legend;
	}-*/;

	public native final String getName()/*-{
		return this.Name;
	}-*/;

	public native final void setName(String value)/*-{
		this.Name = value;
	}-*/;

	public native final int getPerspective()/*-{
		return this.Perspective;
	}-*/;

	public native final void setPerspective(int value)/*-{
		this.Perspective = value;
	}-*/;

	public native final PlotArea getPlotArea()/*-{
		return this.PlotArea;
	}-*/;

	public native final boolean getPlotVisibleOnly()/*-{
		return this.PlotVisibleOnly;
	}-*/;

	public native final void setPlotVisibleOnly(boolean value)/*-{
		this.PlotVisibleOnly = value;
	}-*/;

	public native final JavaScriptObject getRightAngleAxes()/*-{
		return this.RightAngleAxes;
	}-*/;

	public native final void setRightAngleAxes( Object value)/*-{
		this.RightAngleAxes = value;
	}-*/;

	public native final JavaScriptObject getRotation()/*-{
		return this.Rotation;
	}-*/;

	public native final void setRotation( Object value)/*-{
		this.Rotation = value;
	}-*/;

	public native final void select( Object replace)/*-{
		this.Select( replace);
	}-*/;

  public final SeriesCollection getSeriesCollection() {
    return seriesCollection(0);
  }

	private native SeriesCollection seriesCollection( int index)/*-{
		return this.SeriesCollection( index);
	}-*/;

	protected native final void _setElement( int element)/*-{
		this.SetElement( element);
	}-*/;

	public final void setElement(MsoChartElementType element){
		_setElement(element.getValue());
	}
	public native final int getSubtype()/*-{
		return this.Subtype;
	}-*/;

	public native final void setSubtype(int value)/*-{
		this.Subtype = value;
	}-*/;


  public final XlChartType getType() {
    return XlChartType.valueOf(_getType());
  }

	private native final int _getType()/*-{
		return this.Type;
	}-*/;

  public final void setType(XlChartType value) {
    _setType(value.getValue());
  }

	private native final void _setType(int value)/*-{
		this.Type = value;
	}-*/;

	public native final Walls getWalls()/*-{
		return this.Walls;
	}-*/;

}
